import fs from 'node:fs'
import path from 'node:path'
import { defineConfig } from 'vite'
import { uuid } from './src/config'

export default defineConfig({
  server: {
    host: 'localhost', // 指定服务器主机名
    open: true, // 自动打开浏览器
    allowedHosts: ['localhost'], // 允许访问的主机名
    https: {
      key: fs.readFileSync(path.resolve('D:/OpenSSL', 'cert.key')),
      cert: fs.readFileSync(path.resolve('D:/OpenSSL', 'cert.crt')),
    }, // 是否开启 https
    proxy: {
      '/api': {
        target: 'https://localhost:3000',
        changeOrigin: true,
        secure: false,
        configure(proxy, _options) {
          // proxy 是 'http-proxy' 的实例
          // options 是一个对象，包含了 proxy 选项的所有值
          // 在这里可以对 proxy 进行配置
          // 例如，添加自定义的请求头
          proxy.on('proxyReq', function (proxyReq, _req, _res, _options) {
            // 在请求被代理到目标服务器之前，可以在这里添加自定义的请求头
            proxyReq.setHeader('access-token', uuid)
          })
          proxy.on('proxyRes', function (proxyRes, req, _res) {
            // 在响应被代理到客户端之前，可以在这里添加自定义的响应头
            proxyRes.headers['X-Custom-Header'] = req.headers['access-token']
          })
          proxy.on('error', function (_err, _req, _res) {
            // 在代理过程中发生错误时，可以在这里处理错误
            // res.writeHead(500, {
            //   'Content-Type': 'text/plain'
            // });
          })
        },
      },
    },
  },
})
